#	$OpenBSD: GENERIC,v 1.108 2015/03/30 20:32:59 miod Exp $
#
# For further information on compiling OpenBSD kernels, see the config(8)
# man page.
#
# For further information on hardware support for this architecture, see
# the intro(4) man page.  For further information about kernel options
# for this architecture, see the options(4) man page.  For an explanation
# of each device driver in this file see the section 4 man page for the
# device.

machine		sparc
include		"../../../conf/GENERIC"
maxusers	20		# estimated number of users

# Options for variants of the Sun SPARC architecture.
# At least one is required.
option		SUN4		# sun4/100, sun4/200, sun4/300
option		SUN4C		# sun4c - SS1, 1+, 2, ELC, SLC, IPC, IPX, etc.
option		SUN4E		# sun4e - SPARCengine 1E
option		SUN4M		# sun4m - SS10, SS20, Classic, etc.

#option		MMU_3L		# 3-level MMU on sun4/400

#option		KGDB		# support for kernel gdb
#option		KGDBDEV=0xc01	# kgdb device number (dev_t)
#option		KGDBRATE=38400	# baud rate

option		WSEMUL_SUN	# provide sun terminal emulation; required
option		WSEMUL_NO_VT100	# do not provide vt100 terminal emulation
option		WSDISPLAY_COMPAT_RAWKBD # provide raw scancodes; needed for X11

# Generic swap; second partition of root disk or network.
config		bsd	swap generic

# Main bus and CPU .. all systems.
mainbus0 at root
cpu0	at mainbus0

# Bus types found on SPARC systems.
sbus0	at mainbus0				# sun4c and sun4e
obio0	at mainbus0				# sun4 and sun4m
vmes0	at mainbus0				# sun4
vmel0	at mainbus0				# sun4
iommu0	at mainbus0				# sun4m
sbus0	at iommu0				# sun4m

audioamd0 at mainbus0				# sun4c
audioamd0 at obio0				# sun4m
audioamd0 at sbus0				# sun4m
audio*	at audioamd?

audiocs0 at sbus0				# sun4m
audio*	at audiocs?

auxreg*	at mainbus0				# sun4c and sun4e
auxreg*	at obio0				# sun4m

# Power status and control register found on Sun4m systems
power0	at obio0

# Mostek clock found on 4/300, sun4c, and sun4m systems.
# The Mostek clock NVRAM is the "eeprom" on sun4/300 systems.
clock0	at mainbus0				# sun4c and sun4e
clock0	at obio0				# sun4m
clock0	at obio0 addr 0xf2000000		# sun4/300

# Intersil clock found on 4/100 and 4/200 systems.
oclock0	at obio0 addr 0xf3000000		# sun4/100 and sun4/200

# Memory error registers.
memreg0	at mainbus0				# sun4c and sun4e
memreg0	at obio0				# sun4m
memreg0	at obio0 addr 0xf4000000		# sun4

# ECC memory control
eccmemctl0 at mainbus0				# sun4m

# Timer chip found on 4/300, sun4c, and sun4m systems.
timer0	at mainbus0				# sun4c and sun4e
timer0	at obio0				# sun4m
timer0	at obio0 addr 0xef000000		# sun4/300

# EEPROM found on 4/100 and 4/200 systems.  Note that the 4/300
# doesn't use this driver; the `EEPROM' is in the NVRAM on the
# Mostek clock chip on 4/300 systems.
eeprom0	at obio0 addr 0xf2000000		# sun4/100 and sun4/200

# 8 segment led display on sun4/sun4m systems
led0 at mainbus0				# sun4 and sun4e
led0 at obio0					# sun4/600

# Zilog 8530 serial chips.  Each has two-channels.
# zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
zs0	at mainbus0					# sun4c and sun4e
zs0	at obio0					# sun4m
zs0	at obio0 addr 0xf1000000 level 12		# sun4
zs1	at mainbus0					# sun4c and sun4e
zs1	at obio0					# sun4m
zs1	at obio0 addr 0xf0000000 level 12		# sun4
zs2	at obio0 addr 0xe0000000 level 12		# sun4/300

zstty* at zs?
zskbd* at zs?
wskbd* at zskbd?
zsms*  at zs?
wsmouse* at zsms?

# Magma serial/parallel port devices
magma*	at sbus?					# magma serial cards
mtty*	at magma?
mbpp*	at magma?

# SUNW,spif serial/parallel port devices
spif*	at sbus?					# spif serial cards
stty*	at spif?
sbpp*	at spif?

bpp*	at sbus?					# parallel port

# built-in modem on Tadpole SPARCbook
com*	at obio?

# SUNW,xbox SBus Expansion Subsystem
xbox*	at sbus?					# SBus Expansion box
sbus*	at xbox?

#
# Note the flags on the esp entries below, that work around
# deficiencies in the current driver:
#	bits 0-7:  disable disconnect/reselect for the corresponding target
#	bits 8-15: disable synch negotiation for target [bit-8]
#	Note: targets 4-7 have disconnect/reselect enabled on the premise
#	      that tape devices normally have one of these targets. Tape
#	      devices should be allowed to disconnect for the SCSI bus
#	      to operate acceptably.
#

# sun4/300 SCSI - an NCR53c94 or equivalent behind
# an LSI Logic DMA controller
dma0	at obio0 addr 0xfa001000 level 4		# sun4/300
esp0	at obio0 addr 0xfa000000 level 4 flags 0x00ff000f

# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0	at sbus0					# on-board SCSI
esp0	at sbus0 flags 0x00ff000f			# sun4c and sun4e
esp0	at dma0 flags 0x00ff000f			# sun4m

# FSBE/S SCSI - an NCR53c94 or equivalent behind
dma*	at sbus?					# SBus SCSI
esp*	at sbus? flags 0x00ff000f			# two flavours
esp*	at dma? flags 0x00ff000f			# depending on model

#sun4c, sun4e, sun4m
qlw*	at sbus?
#qla*	at sbus?

# sun4m Ethernet - an AMD 7990 LANCE behind
# specialized DMA glue
ledma0	at sbus0					# sun4m on-board
le0	at ledma0					#
ledma*	at sbus0					# Anteres sbus
le*	at ledma?					#

# Additional SBus LANCE devices - glued on by lebuffer
lebuffer0	at sbus0				# sun4m SBus
lebuffer*	at sbus?				# sun4m SBus
le0	at lebuffer0					#
le*	at lebuffer?					#

# sun4/300 and sun4c Ethernet - an AMD 7990 LANCE
le0	at sbus0					# sun4c/sun4e on-board
le*	at sbus?

le0	at obio0 addr 0xf9000000 level 6		# sun4/300

# sun4/100 and sun4/200 Ethernet - an Intel 82586 on-board
# or on a Multibus/VME card.
ie0	at obio0 addr 0xf6000000 level 6		# sun4/100 and sun4/200

ie1	at vmes0 addr 0xffe88000 level 5 vect 0x75
ie2	at vmes0 addr 0xff31ff02 level 5 vect 0x76
ie3	at vmes0 addr 0xff35ff02 level 5 vect 0x77
ie4	at vmes0 addr 0xff2dff02 level 5 vect 0x7c

# HappyMeal ethernet (will not work on sun4c)
hme*	at sbus?

# Quad-ethernet glue device, and sub-devices
qec*	at sbus?
qe*	at qec?
be*	at qec?

# Gigabit ethernet
gem*	at sbus?
ti*	at sbus?

# Xylogics 753 or 7053 VME SMD disk controllers and disks, found
# on sun4 systems.
xdc0	at vmel0 addr 0xffffee80 level 3 vect 0x44
xdc1	at vmel0 addr 0xffffee90 level 3 vect 0x45
xdc2	at vmel0 addr 0xffffeea0 level 3 vect 0x46
xdc3	at vmel0 addr 0xffffeeb0 level 3 vect 0x47
xd*	at xdc?

# Xylogics 451 or 451 VME SMD disk controllers and disks, found
# on sun4 systems.
xyc0	at vmes0 addr 0xffffee40 level 3 vect 0x48
xyc1	at vmes0 addr 0xffffee48 level 3 vect 0x49
xy*	at xyc?

# NCR5380-based "Sun SCSI 3" VME SCSI controller.
# This driver has several flags which may be enabled by OR'ing
# the values and using the "flags" directive.
# Valid flags are:
#
#	0x01		Use DMA (may be polled)
#	0x02		Use DMA completion interrupts
#	0x04		Allow disconnect/reselect
#
# E.g. the following would enable DMA, interrupts, and reselect:
# si0	at vmes0 addr 0xff200000 level 3 vect 0x40 flags 0x07
#
si0	at vmes0 addr 0xff200000 level 3 vect 0x40 flags 0x01

# NCR5380-based "SCSI Weird" on-board SCSI interface found
# on sun4/100 systems.  The flags are the same as the "si"
# controller.  Note, while DMA is enabled by default, only
# polled DMA works at this time, and reselects do not work
# on this particular controller.
sw0	at obio0 addr 0xfa000000 level 3 flags 0x01

# Sun "bwtwo" black and white framebuffer, found on sun4, sun4c, and sun4m
# systems.
bwtwo0	at sbus0				# sun4c on-board
bwtwo*	at sbus?				# sun4c and sun4m
bwtwo0	at obio0 addr 0xfd000000 level 4	# sun4/200
bwtwo0	at obio0 addr 0xfb300000 level 4	# sun4/100 and sun4/300 P4
wsdisplay* at bwtwo?

# Sun "cgtwo" VME color framebuffer.
cgtwo0	at vmes0 addr 0xff400000 level 4 vect 0xa8
wsdisplay* at cgtwo?

# Sun "cgthree" SBus color framebuffer.
cgthree* at sbus?
wsdisplay* at cgthree?

# Sun "cgfour" color framebuffer.
cgfour0	at obio0 addr 0xfb300000 level 4	# sun4/100 and sun4/300 P4
wsdisplay* at cgfour?

# Sun "cgsix" accelerated color framebuffer.
cgsix0	at sbus?
cgsix*	at sbus?
cgsix0	at obio0 addr 0xfb000000 level 4	# sun4/100 and sun4/300 P4
wsdisplay* at cgsix?

# Sun "cgeight" 24-bit framebuffer.
cgeight0 at obio0 addr 0xfb300000 level 4	# sun4/100 and sun4/300 P4
wsdisplay* at cgeight?

# Sun "tcx" accelerated color framebuffer.
tcx*	at sbus?
wsdisplay* at tcx?

# Sun "cgfourteen" accelerated 24-bit framebuffer.
cgfourteen0 at obio0 addr 0x9c000000		# sun4m
cgfourteen1 at obio0 addr 0x90000000		# sun4m
wsdisplay* at cgfourteen?

# Sun "cgtwelve" (GS) accelerated 24-bit framebuffer.
cgtwelve*	at sbus?
wsdisplay* at cgtwelve?

# Sun "leo" (ZX) accelerated 24-bit framebuffer.
zx*	at sbus?
wsdisplay* at zx?

# Vigra VS10 or VS12 framebuffer.
vigra*	at sbus?
wsdisplay* at vigra?

# Weitek P9000 found on Tadpole SPARCbook 3, with external ``Chameleon'' RAMDAC
pninek0	at sbus?
btcham0	at obio?
wsdisplay* at pninek?

# Weitek P9100 found on Tadpole SPARCbook 3GS/3GX/3TX/3XP
pnozz0	at sbus?
wsdisplay* at pnozz?

# Parallax XVideo and PowerVideo
tvtwo* at sbus?
wsdisplay* at tvtwo?

# Fujitsu AG-10e framebuffer.
agten* at sbus?
wsdisplay* at agten?

# Southland Media Systems MGX/MGXPlus framebuffer.
mgx* at sbus?
wsdisplay* at mgx?

# Vitec/Connectware/AP&D RasterFlex framebuffer series.
rfx* at sbus?
wsdisplay* at rfx?

# Microcontroller found on Tadpole SPARCbook
tctrl0	at obio0

# Sun PCMCIA bridge
stp*	at sbus?
pcmcia*	at stp?

# PCMCIA controller found on Tadpole SPARCbook
tslot*	at sbus?
pcmcia*	at tslot?

# PCMCIA devices
wi*	at pcmcia?		# WaveLAN IEEE 802.11DS
#an*	at pcmcia?		# Aironet IEEE 802.11DS
ne*	at pcmcia?		# NE2000-compat ethernet
ep*	at pcmcia?		# PCMCIA based 3C5xx ethernet
#com*	at pcmcia?		# PCMCIA modems/serial ports

# Media Independent Interface (mii) drivers (required by hme, ne, ep)
bmtphy*	at mii?			# Broadcom 10/100 PHYs
gentbi*	at mii?			# Generic 1000BASE-X ten-bit PHY
lxtphy*	at mii?			# Level1 LXT970 PHYs
nsphy*	at mii?			# NS and compatible PHYs
nsphyter* at mii?
qsphy*	at mii?			# Quality Semi QS6612 PHYs
luphy*	at mii?			# Lucent LU6612 PHY
tqphy* at mii?			# TDK 78Q212x PHYs
ukphy*	at mii?

# SCSI bus layer.  SCSI devices attach to the SCSI bus, which attaches
# to the underlying hardware controller.

# These entries find devices on all SCSI busses and assign
# unit numers dynamically.
scsibus* at scsi?
sd*	at scsibus?		# SCSI disks
st*	at scsibus?		# SCSI tapes
cd*	at scsibus?		# SCSI CD-ROMs
ch*	at scsibus?		# SCSI changer devices
safte*	at scsibus?		# SCSI accessed fault-tolerant enclosures
ses*	at scsibus?		# SCSI enclosure services
uk*	at scsibus?		# unknown SCSI devices

# Floppy controller and drive found on SPARCstations.
fdc0	at mainbus0				# sun4c controller
fdc0	at obio0				# sun4m controller
fd*	at fdc0					# the drive itself

# flash memory, sysconfig regs, and VME for Force boards
#scf0	at mainbus0				# FORCE CPU-5V sysconfig
#flash0	at obio0				# FORCE CPU-5V flash-memory
#fga0	at iommu0				# FORCE CPU-5V VME/SBus bridge
#fvme*	at fga0					# FORCE CPU-5V
#daadio*	at fvme? addr 0x0 level 1 vect 0x1f	# Matrix MD-DAADIO board

# Prestoserve NVRAM
#presto*	at sbus?		# SBus board
#presto*	at mainbus?		# SS10/SS20 NVSIMM

pseudo-device	hotplug		1	# devices hot plugging
pseudo-device	wsmux		2	# mouse & keyboard multiplexor
